/*
 * magiced_shared_record.hpp
 *
 *  Created on: 2023年5月16日
 *      Author: Dylan.Gao
 */

#ifndef _DM_OS_MAGICED_SHARED_RECORD_HPP_
#define _DM_OS_MAGICED_SHARED_RECORD_HPP_

#include <boost/interprocess/sync/interprocess_upgradable_mutex.hpp>
#include <dm/magic.hpp>

namespace dm{
namespace os{

/**
 * 具备魔数的共享记录
 * @tparam S
 */
template<typename S>
struct TSMagicedSharedRecord{
	typedef boost::interprocess::interprocess_upgradable_mutex mutex_t;
	typedef dm::CMagic::magic_t magic_t;

	mutex_t mutex;	//!< 共享互斥量
	magic_t magic;	//!< 修改魔数
	S d;			//!< 数据内容
};

}
}



#endif /* _DM_OS_MAGICED_SHARED_RECORD_HPP_ */
